From: Kenichi Handa Date: Thu, 16 Apr 2009 01:08:24 +0000 (+0000) Subject: (merge_face_vectors): Reflect font properties in X-Git-Tag: archive/raspbian/1%29.2+1-2+rpi1~1^2~421^2~825 X-Git-Url: https://dgit.raspbian.org/%22http:/www.example.com/cgi/%22https:/www.github.com/%22bookmarks:///%22http:/www.example.com/cgi/%22https:/www.github.com/%22bookmarks:/?a=commitdiff_plain;h=2f44359ac7e9208a6b29567cbe936cc682d5b24d;p=emacs.git (merge_face_vectors): Reflect font properties in to[LFACE_FONT_INDEX] to the other face attributes. Don't call font_clear_prop if a face attribute doesn't change. --- diff --git a/src/xfaces.c b/src/xfaces.c index a4a7077e57b..62d2cf22196 100644 --- a/src/xfaces.c +++ b/src/xfaces.c @@ -2449,6 +2449,16 @@ merge_face_vectors (f, from, to, named_merge_points) to[i] = Fmerge_font_spec (from[i], to[i]); else to[i] = Fcopy_font_spec (from[i]); + if (! NILP (AREF (to[i], FONT_FOUNDRY_INDEX))) + to[LFACE_FOUNDRY_INDEX] = SYMBOL_NAME (AREF (to[i], FONT_FOUNDRY_INDEX)); + if (! NILP (AREF (to[i], FONT_FAMILY_INDEX))) + to[LFACE_FAMILY_INDEX] = SYMBOL_NAME (AREF (to[i], FONT_FAMILY_INDEX)); + if (! NILP (AREF (to[i], FONT_WEIGHT_INDEX))) + to[LFACE_WEIGHT_INDEX] = FONT_WEIGHT_FOR_FACE (to[i]); + if (! NILP (AREF (to[i], FONT_SLANT_INDEX))) + to[LFACE_SLANT_INDEX] = FONT_SLANT_FOR_FACE (to[i]); + if (! NILP (AREF (to[i], FONT_WIDTH_INDEX))) + to[LFACE_SWIDTH_INDEX] = FONT_WIDTH_FOR_FACE (to[i]); ASET (to[i], FONT_SIZE_INDEX, Qnil); } @@ -2460,7 +2470,8 @@ merge_face_vectors (f, from, to, named_merge_points) to[i] = merge_face_heights (from[i], to[i], to[i]); font_clear_prop (to, FONT_SIZE_INDEX); } - else if (i != LFACE_FONT_INDEX) + else if (i != LFACE_FONT_INDEX + && ! EQ (to[i], from[i])) { to[i] = from[i]; if (i >= LFACE_FAMILY_INDEX && i <=LFACE_SLANT_INDEX)